using System;
using System.Collections;
using System.Collections.Specialized;
using System.Web;
using System.Reflection;
using W32 = Microsoft.Win32;
using Dimok.Data;

////////////////////////////////////////////////////////////////////////////////////////////////////
// namespace: Dimok.Data
//
// summary:	.
////////////////////////////////////////////////////////////////////////////////////////////////////

namespace Dimok.Data{

	////////////////////////////////////////////////////////////////////////////////////////////////////
	/// <summary>	Registry. </summary>
	///
	/// <remarks>	Dimon, 12/21/2010. </remarks>
	////////////////////////////////////////////////////////////////////////////////////////////////////

	public class Registry : RegistryBase{

		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// <summary>	Gets a value indicating whether this object is debug. </summary>
		///
		/// <value>	true if this object is debug, false if not. </value>
		////////////////////////////////////////////////////////////////////////////////////////////////////

		public static bool IsDebug{get{return AppSettings("Debug",false) == "true";}}

		#region Application section ===============

		#endregion

		#region Logins section ===============

		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// <summary>	Gets the net user. </summary>
		///
		/// <value>	The net user. </value>
		////////////////////////////////////////////////////////////////////////////////////////////////////

		public static string netUser{get{return GetLoginsValue("netName");}}

		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// <summary>	Gets the net pass. </summary>
		///
		/// <value>	The net pass. </value>
		////////////////////////////////////////////////////////////////////////////////////////////////////

		public static string netPass{get{return GetLoginsValue("netPass");}}

		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// <summary>	Gets the database user. </summary>
		///
		/// <value>	The database user. </value>
		////////////////////////////////////////////////////////////////////////////////////////////////////

		public static string dbUser {get{return GetLoginsValue("dbUser");}}

		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// <summary>	Gets the database pass. </summary>
		///
		/// <value>	The database pass. </value>
		////////////////////////////////////////////////////////////////////////////////////////////////////

		public static string dbPass {get{return GetLoginsValue("dbPass");}}

		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// <summary>	Gets the name of the web. </summary>
		///
		/// <value>	The name of the web. </value>
		////////////////////////////////////////////////////////////////////////////////////////////////////

		public static string webName{get{return GetLoginsValue("webName");}}

		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// <summary>	Gets the web pass. </summary>
		///
		/// <value>	The web pass. </value>
		////////////////////////////////////////////////////////////////////////////////////////////////////

		public static string webPass{get{return GetLoginsValue("webPass");}}
		#endregion

		#region DB section ===============
		#endregion

		#region Registry =================
		/*
		public static string ReadValue(string valueName){return ReadValue(valueName,null);}
		public static string ReadValue(string valueName,object valueDefault){
			W32.RegistryKey subKey = W32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\"+Config.application.AppSpace+"\\{46A81789-EFF3-4dd3-A2B1-177479D7804F}",true);
			if( subKey == null )throw new NoRegistryKeyException("SOFTWARE\\"+Config.application.AppSpace);
			object val = subKey.GetValue(valueName);
			if( val == null )
				if( valueDefault != null ){
					subKey.SetValue(valueName,valueDefault);
					return (string)valueDefault;
				}else
					throw new NoRegistryKeyException(valueName);
			return val.ToString();
		}
		// private static string ReadValue(string valueName,object def){return
		// Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wealthcorp\Connections").GetValue(valueName,
		// def).ToString();} 
		public static string adminUser{get{return ReadValue("AdminUser");}}
		public static string adminUserName{get{return adminUser.Split('@')[0];}}
		public static string adminPass{get{return ReadValue("AdminPass");}}

		public static string db{get{return ReadValue("DB_Connection");}}
		public static string dbADO{get{return ReadValue("DB_ADO_Connection");}}
		*/
		#endregion

		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// <summary>	Gets the version. </summary>
		///
		/// <value>	The version. </value>
		////////////////////////////////////////////////////////////////////////////////////////////////////

		public static string version{get{return Assembly.GetAssembly(typeof(Registry)).GetName().Version.ToString();}}
	}
}
